প্রোডাকশনের জন্য অ্যাপ্লিকেশন বিল্ড করা

Web Development - অ্যাঙ্গুলার (Angular) - বিল্ডিং এবং ডিপ্লয়মেন্ট |
1
1

প্রোডাকশন পরিবেশে Angular অ্যাপ্লিকেশনটি ডিপ্লয় করার আগে, আপনাকে অ্যাপ্লিকেশনটি বিল্ড করতে হবে যাতে এটি অপটিমাইজড এবং প্রস্তুত থাকে। Angular CLI এ ng build --prod কমান্ড ব্যবহার করে অ্যাপ্লিকেশনটি প্রোডাকশনের জন্য বিল্ড করা যায়। এই বিল্ডটি আপনার অ্যাপ্লিকেশনটি কোড মিনিফিকেশন, অপ্রয়োজনীয় কোড অপসারণ, এবং পারফরম্যান্স উন্নতির জন্য বিভিন্ন অপটিমাইজেশন অন্তর্ভুক্ত করবে।


1. প্রোডাকশন বিল্ডের জন্য ng build --prod কমান্ড

ng build --prod কমান্ডটি ব্যবহার করার মাধ্যমে অ্যাপ্লিকেশনটি প্রোডাকশনের জন্য প্রস্তুত করা হয়। এটি কোড মিনিফিকেশন, গাঞ্জাম কোড অপটিমাইজেশন, এবং প্রোডাকশন পরিবেশের জন্য অন্যান্য সেটিংস সক্রিয় করে।

ng build --prod

এই কমান্ডটি রান করার পর, Angular CLI:

  • কোড মিনিফাই (Minify) করবে, যার ফলে ফাইল সাইজ ছোট হয়ে যাবে।
  • অপ্রয়োজনীয় কোড এবং ডিপেনডেন্সি অপসারণ করবে।
  • প্রোডাকশন পরিবেশে সবচেয়ে ভালো পারফরম্যান্স পাওয়ার জন্য অটোমেটিক অপটিমাইজেশন করবে (যেমন: Ahead-of-Time (AOT) কম্পাইলেশন)।

নোট: --prod ফ্ল্যাগ ব্যবহার করার ফলে Angular স্বয়ংক্রিয়ভাবে AOT কম্পাইলেশন, Tree Shaking, এবং Minification সক্রিয় করবে।

ng build --prod কনফিগারেশন

আপনার angular.json ফাইলটি প্রোডাকশন বিল্ডের জন্য কনফিগার করা থাকবে। যখন আপনি ng build --prod চালান, Angular CLI এই কনফিগারেশন ব্যবহার করবে:

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "buildOptimizer": true,
    "fileReplacements": [
      {
        "src": "src/environments/environment.ts",
        "replaceWith": "src/environments/environment.prod.ts"
      }
    ]
  }
}
  • optimization: কোড অপটিমাইজেশন সক্ষম করে (যেমন: মিনিফিকেশন)।
  • outputHashing: বিল্ড ফাইলগুলিতে হ্যাশ কোড যোগ করে, যা ক্যাশিং সমস্যাগুলি এড়াতে সাহায্য করে।
  • sourceMap: প্রোডাকশন বিল্ডে সোর্স ম্যাপ তৈরি করবে না।
  • extractCss: CSS ফাইলগুলো আলাদা করে তৈরি করবে।
  • aot: Ahead-of-Time (AOT) কম্পাইলেশন সক্ষম করবে।
  • buildOptimizer: Angular অ্যাপ্লিকেশনের সাইজ কমাতে অপটিমাইজেশন প্রয়োগ করবে।
  • fileReplacements: এটি environment.ts ফাইলের পরিবর্তে environment.prod.ts ফাইল ব্যবহার করবে, যাতে প্রোডাকশন পরিবেশে আলাদা কনফিগারেশন ব্যবহৃত হয়।

2. প্রোডাকশনের জন্য ফাইল গঠন

ng build --prod কমান্ডটি চালানোর পর, আপনার অ্যাপ্লিকেশনটি dist/ ফোল্ডারে তৈরি হবে। এই ফোল্ডারের মধ্যে থাকবে:

  • index.html: অ্যাপ্লিকেশনের মূল HTML ফাইল।
  • main.js: অ্যাপ্লিকেশনের মিনিফায়েড JavaScript ফাইল।
  • styles.css: অ্যাপ্লিকেশনের মিনিফায়েড CSS ফাইল।
  • assets/: অ্যাসেট ফোল্ডার (যেমন: ছবি, ফন্ট ইত্যাদি)।
  • environment.prod.ts: প্রোডাকশন কনফিগারেশন ফাইল।

আপনি এই dist/ ফোল্ডারটি আপনার সার্ভারে আপলোড করতে পারবেন।


3. প্রোডাকশন বিল্ডের পরে কনফিগারেশন চেক করা

এটি নিশ্চিত করতে হবে যে প্রোডাকশন পরিবেশের জন্য সঠিক কনফিগারেশন ব্যবহার করা হচ্ছে। এজন্য আপনি environment.prod.ts ফাইলটি চেক করতে পারেন, যেখানে আপনি বিভিন্ন API URL বা কনফিগ সেটিংস পরিবর্তন করতে পারবেন।

src/environments/environment.prod.ts ফাইলের উদাহরণ:

export const environment = {
  production: true,
  apiUrl: 'https://api.example.com/'
};

এটি ডেভেলপমেন্টের জন্য environment.ts ফাইলের বিকল্প হবে এবং প্রোডাকশন পরিবেশে এটি ব্যবহার করা হবে।


4. প্রোডাকশন সার্ভারে ডেপ্লয় করা

একবার আপনি প্রোডাকশন বিল্ড তৈরি করলে, আপনি এটিকে আপনার পছন্দের সার্ভারে ডেপ্লয় করতে পারেন। এটি সাধারণত ওয়েব হোস্টিং সার্ভিস বা ক্লাউড প্ল্যাটফর্ম (যেমন, Firebase Hosting, AWS S3, Netlify বা Heroku) এ হোস্ট করা হয়ে থাকে।

উদাহরণ: Firebase Hosting এ অ্যাপ্লিকেশন ডেপ্লয় করা

  1. Firebase CLI ইনস্টল করুন:

    npm install -g firebase-tools
    
  2. Firebase-এ লগইন করুন:

    firebase login
    
  3. আপনার অ্যাপ্লিকেশনটি ডিপ্লয় করুন:

    firebase deploy
    

এটি অ্যাপ্লিকেশনটি Firebase Hosting-এ ডিপ্লয় করবে এবং আপনি একটি URL পাবেন যেখানে অ্যাপ্লিকেশনটি দেখতে পারবেন।


সারাংশ

প্রোডাকশনের জন্য Angular অ্যাপ্লিকেশন বিল্ড করার সময় ng build --prod কমান্ড ব্যবহার করা হয়, যা অ্যাপ্লিকেশনটি অপটিমাইজ, মিনিফাই এবং AOT কম্পাইলেশনের মাধ্যমে প্রোডাকশনের জন্য প্রস্তুত করে। এটি পারফরম্যান্স উন্নত করে এবং সার্ভারে ডিপ্লয় করার জন্য প্রস্তুত থাকে।

Content added By
Promotion